import { operationLocalLock } from './util' // 导入操作本地锁的函数
import { Text, useMessage } from 'alemonjs'
import { autoRegisterUser } from './register/register' // 引用自动注册函数

export const selects = onSelects([
  'message.create',
  'private.message.create',
  'private.interaction.create',
  'interaction.create'
])

const response = onResponse(selects, async e => {
  // 排除平台
  if (e.Platform == 'telegram' || e.Platform == 'wechat') {
    return
  }

  // 调用操作本地锁的函数
  const if_lock = await operationLocalLock(e.UserId)
  if (!if_lock) {
    const [message] = useMessage(e)
    message.send(format(Text('操作过于频繁，请稍后再试~')))
    return
  }

  // 自动注册（如果未注册则自动注册）
  const regResult = await autoRegisterUser(e.UserId ?? e.UserKey)
  if (regResult) {
    const [message] = useMessage(e)
    message.send(
      format(
        Text(
          '注册成功！\n朦胧的睡梦里，你望见了一抹白光————\n你缓缓靠近，感觉思绪被白光缓缓吞噬————\n——————————————\n请回复[种子]或[跳过]'
        )
      )
    )
    return
  }

  // 允许指令消息继续执行
  return true
})

// 校验有效用户
export const validate = response.current
